#include <iostream>
#include <sys/types.h>
#include <sys/stat.h>
#include <unistd.h>
#include <fcntl.h>
#include "public.h"
#include <ctime>
#define FILENAME "fifo"
using namespace std;
// void CreatChannels()
// {
//     srand(int(time(0)));
//     files.push_back(FILENAME1);
//     files.push_back(FILENAME2);
//     // files.push_back(FILENAME3);
//     // files.push_back(FILENAME4);
//     // files.push_back(FILENAME5);

//     // 建立两个个管道
//     for (size_t i = 0; i < pipe_num; i++)
//     {
//         // int n
//         int n = mkfifo(files[i].c_str(), 0666);
//         int r_open = open(files[i].c_str(), O_RDONLY);
//         // 把打开的5个文件fd存储
//         fd_open_server.push_back(r_open);
//     }
// }
// void ReceiveMessage()
// {
//     // 实现两个管道各自接受
//     char buffer[1024];
//     char buffer1[1024];
//     while (1)
//     {

//         ssize_t r_read1 = read(fd_open_server[0], buffer, sizeof(buffer) - 1);
//         if (r_read1 > 0)
//         {
//             buffer[r_read1] = 0;
//             cout << "recieve the message from client1: " << buffer << endl;
//         }

//         ssize_t r_read2 = read(fd_open_server[1], buffer1, sizeof(buffer1) - 1);

//         if (r_read2 > 0)
//         {
//             buffer1[r_read2] = 0;
//             cout << "recieve the message from client2: " << buffer1 << endl;
//         }
//     }
// }

// int main()
// {
//     CreatChannels();
//     ReceiveMessage();
// }
int main()
{
    // 创建命名管道fifo
    int n = mkfifo(FILENAME, 0666);

    // 文件返回值
    int r_open = open(FILENAME, O_RDONLY);

    char buffer[1024];
    while (1)
    {

        ssize_t r_read = read(r_open, buffer, sizeof(buffer) - 1);
        if (r_read > 0)
        {
            buffer[r_read] = 0;
            cout << "recieve the message from client: " << buffer << endl;
        }
    }

    close(r_open);
}